package com.shimao.celnet.payment.model.request;

import org.hibernate.validator.constraints.NotBlank;

import java.util.List;

/**
 * 对应接口：pay-160(蓝票)-外部开票申请：立即开票
 * @Author Jax
 * @Date 16:26 2018/11/28
 **/
public class CallIn_newOutInvOpenBuleReqIn {
    @NotBlank(message = "即时开票标识【immediatelyFlg】")
    private String immediatelyFlg;


    @NotBlank(message = "业务类型【businessType】")
    private String businessType;


    @NotBlank(message = "小区id【estateId】")
    private String estateId;

    private String estateName;


    @NotBlank(message = "设备类型【deviceType】")
    private String deviceType;

    @NotBlank(message = "发票种类不能为空")
    private String invoiceTypeCode;

    @NotBlank(message = "开票点编码【invoiceTerminalCode】")
    private String invoiceTerminalCode;

    @NotBlank(message = "特殊票种标记【invoiceSpecialMark】")
    private String invoiceSpecialMark;

    /**
     * 购方单位税号
     购方单位名称，即时开票标识为1时必须
     购方地址及电话，专票必填，即时开票标识为1时必须
     购方开户行及账号，专票必填
     购方电话，email
     */
    private String buyerTaxNo;
    private String buyerName;
    private String buyerPhone;
    private String buyerEmail;
    private String buyerAddressPhone;
    private String  buyerBankAccount;


    private String invoiceTotalTax;
    private String  invoiceTotalPrice;

    public String getInvoiceTotalTax() {
        return invoiceTotalTax;
    }

    public void setInvoiceTotalTax(String invoiceTotalTax) {
        this.invoiceTotalTax = invoiceTotalTax;
    }

    public String getInvoiceTotalPrice() {
        return invoiceTotalPrice;
    }

    public void setInvoiceTotalPrice(String invoiceTotalPrice) {
        this.invoiceTotalPrice = invoiceTotalPrice;
    }


    @NotBlank(message = "开票人【drawer】")
    private String drawer;

    private String checker;

    private String payee;

    @NotBlank(message = "清单标志【invoiceListMark】")
    private String invoiceListMark;

    @NotBlank(message = "征税方式【taxationMode】")
    private String taxationMode;


    private String deductibleAmount;


    @NotBlank(message = "价税合计【invoiceTotalPriceTax】")
    private String invoiceTotalPriceTax;

    // @NotBlank(message = "开票限额【limitAccount】")
    private String limitAccount;

    private String taxDiskNo;

    private String taxDiskKey;

    private String taxDiskPassword;

    private String remarks;

    /**
     * 业主名称
     */
    private String userName;

    /**
     * 房源名称
     */
    private String houseName;

    /**
     * 房源sfid
     */

    private String houseSfId;
    /**
     * 开票明细
     */
    private List<CallIn_OutInvOpenBuleDetailReqIn> InvoiceDetailsList;

    /**
     * 开票类型 00：企业开票  11：个人开票
     */
    @NotBlank(message = "开票类型【billingType】")
    private String billingType;

    /*******发票查询参数******/

    /**
    发票代码
     */
    private String invoiceCode;
    /**
     发票号
     */
    private String invoiceNo;

    /**
     支付系统发票guid
     */
    private String receiptGuid;

    /**
     支付系统发票标识   0:正数发票（蓝票） 1：负数发票（红票）
     */
    private String invoiceType;

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getReceiptGuid() {
        return receiptGuid;
    }

    public void setReceiptGuid(String receiptGuid) {
        this.receiptGuid = receiptGuid;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public String getLimitAccount() {
        return limitAccount;
    }

    public void setLimitAccount(String limitAccount) {
        this.limitAccount = limitAccount;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getHouseName() {
        return houseName;
    }

    public void setHouseName(String houseName) {
        this.houseName = houseName;
    }

    public String getHouseSfId() {
        return houseSfId;
    }

    public void setHouseSfId(String houseSfId) {
        this.houseSfId = houseSfId;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public List<CallIn_OutInvOpenBuleDetailReqIn> getInvoiceDetailsList() {
        return InvoiceDetailsList;
    }

    public void setInvoiceDetailsList(List<CallIn_OutInvOpenBuleDetailReqIn> invoiceDetailsList) {
        InvoiceDetailsList = invoiceDetailsList;
    }

    public String getImmediatelyFlg() {
        return immediatelyFlg;
    }

    public void setImmediatelyFlg(String immediatelyFlg) {
        this.immediatelyFlg = immediatelyFlg;
    }

    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }

    public String getEstateId() {
        return estateId;
    }

    public void setEstateId(String estateId) {
        this.estateId = estateId;
    }

    public String getEstateName() {
        return estateName;
    }

    public void setEstateName(String estateName) {
        this.estateName = estateName;
    }

    public String getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }

    public String getInvoiceTypeCode() {
        return invoiceTypeCode;
    }

    public void setInvoiceTypeCode(String invoiceTypeCode) {
        this.invoiceTypeCode = invoiceTypeCode;
    }

    public String getInvoiceTerminalCode() {
        return invoiceTerminalCode;
    }

    public void setInvoiceTerminalCode(String invoiceTerminalCode) {
        this.invoiceTerminalCode = invoiceTerminalCode;
    }

    public String getInvoiceSpecialMark() {
        return invoiceSpecialMark;
    }

    public void setInvoiceSpecialMark(String invoiceSpecialMark) {
        this.invoiceSpecialMark = invoiceSpecialMark;
    }

    public String getBuyerTaxNo() {
        return buyerTaxNo;
    }

    public void setBuyerTaxNo(String buyerTaxNo) {
        this.buyerTaxNo = buyerTaxNo;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getBuyerAddressPhone() {
        return buyerAddressPhone;
    }

    public void setBuyerAddressPhone(String buyerAddressPhone) {
        this.buyerAddressPhone = buyerAddressPhone;
    }

    public String getBuyerBankAccount() {
        return buyerBankAccount;
    }

    public void setBuyerBankAccount(String buyerBankAccount) {
        this.buyerBankAccount = buyerBankAccount;
    }

    public String getBuyerPhone() {
        return buyerPhone;
    }

    public void setBuyerPhone(String buyerPhone) {
        this.buyerPhone = buyerPhone;
    }

    public String getBuyerEmail() {
        return buyerEmail;
    }

    public void setBuyerEmail(String buyerEmail) {
        this.buyerEmail = buyerEmail;
    }

    public String getDrawer() {
        return drawer;
    }

    public void setDrawer(String drawer) {
        this.drawer = drawer;
    }

    public String getChecker() {
        return checker;
    }

    public void setChecker(String checker) {
        this.checker = checker;
    }

    public String getPayee() {
        return payee;
    }

    public void setPayee(String payee) {
        this.payee = payee;
    }

    public String getInvoiceListMark() {
        return invoiceListMark;
    }

    public void setInvoiceListMark(String invoiceListMark) {
        this.invoiceListMark = invoiceListMark;
    }

    public String getTaxationMode() {
        return taxationMode;
    }

    public void setTaxationMode(String taxationMode) {
        this.taxationMode = taxationMode;
    }

    public String getDeductibleAmount() {
        return deductibleAmount;
    }

    public void setDeductibleAmount(String deductibleAmount) {
        this.deductibleAmount = deductibleAmount;
    }

    public String getInvoiceTotalPriceTax() {
        return invoiceTotalPriceTax;
    }

    public void setInvoiceTotalPriceTax(String invoiceTotalPriceTax) {
        this.invoiceTotalPriceTax = invoiceTotalPriceTax;
    }

    public String getTaxDiskNo() {
        return taxDiskNo;
    }

    public void setTaxDiskNo(String taxDiskNo) {
        this.taxDiskNo = taxDiskNo;
    }

    public String getTaxDiskKey() {
        return taxDiskKey;
    }

    public void setTaxDiskKey(String taxDiskKey) {
        this.taxDiskKey = taxDiskKey;
    }

    public String getTaxDiskPassword() {
        return taxDiskPassword;
    }

    public void setTaxDiskPassword(String taxDiskPassword) {
        this.taxDiskPassword = taxDiskPassword;
    }

    public String getBillingType() {
        return billingType;
    }

    public void setBillingType(String billingType) {
        this.billingType = billingType;
    }
}
